﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Dapper_Core.Model
{
    // 类自动创建过程：复制xml内容->编辑->选择性粘贴->将xml粘贴为类
    // 注意: 生成的代码可能至少需要 .NET Framework 4.5 或 .NET Core/Standard 2.0。
    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:gs1:shared:shared_common:xsd:3")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3", IsNullable = false)]
    public partial class TSDQueryByGTINResponseType
    {

        private productData productDataField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public productData productData
        {
            get
            {
                return this.productDataField;
            }
            set
            {
                this.productDataField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class productData
    {

        private ulong gtinField;

        private productDataTargetMarket targetMarketField;

        private ulong informationProviderGLNField;

        private string informationProviderNameField;

        private productDataModule[] productDataRecordField;

        /// <remarks/>
        public ulong gtin
        {
            get
            {
                return this.gtinField;
            }
            set
            {
                this.gtinField = value;
            }
        }

        /// <remarks/>
        public productDataTargetMarket targetMarket
        {
            get
            {
                return this.targetMarketField;
            }
            set
            {
                this.targetMarketField = value;
            }
        }

        /// <remarks/>
        public ulong informationProviderGLN
        {
            get
            {
                return this.informationProviderGLNField;
            }
            set
            {
                this.informationProviderGLNField = value;
            }
        }

        /// <remarks/>
        public string informationProviderName
        {
            get
            {
                return this.informationProviderNameField;
            }
            set
            {
                this.informationProviderNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("module", IsNullable = false)]
        public productDataModule[] productDataRecord
        {
            get
            {
                return this.productDataRecordField;
            }
            set
            {
                this.productDataRecordField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class productDataTargetMarket
    {

        private decimal codeListVersionField;

        private byte valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public byte Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class productDataModule
    {

        private TSDProductQuantityInformationModuleType tSDProductQuantityInformationModuleTypeField;

        private TSDProductOriginInformationModuleType tSDProductOriginInformationModuleTypeField;

        private object tSDProductInstructionsModuleTypeField;

        private object tSDProductClaimsAndEndorsementsModuleTypeField;

        private object tSDProductAllergenInformationModuleTypeField;

        private object tSDNutritionalProductInformationModuleTypeField;

        private object tSDFoodAndBeveragePreparationInformationModuleTypeField;

        private object tSDFoodAndBeverageIngredientInformationModuleTypeField;

        private TSDBasicProductInformationModuleType tSDBasicProductInformationModuleTypeField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public TSDProductQuantityInformationModuleType TSDProductQuantityInformationModuleType
        {
            get
            {
                return this.tSDProductQuantityInformationModuleTypeField;
            }
            set
            {
                this.tSDProductQuantityInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public TSDProductOriginInformationModuleType TSDProductOriginInformationModuleType
        {
            get
            {
                return this.tSDProductOriginInformationModuleTypeField;
            }
            set
            {
                this.tSDProductOriginInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDProductInstructionsModuleType
        {
            get
            {
                return this.tSDProductInstructionsModuleTypeField;
            }
            set
            {
                this.tSDProductInstructionsModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDProductClaimsAndEndorsementsModuleType
        {
            get
            {
                return this.tSDProductClaimsAndEndorsementsModuleTypeField;
            }
            set
            {
                this.tSDProductClaimsAndEndorsementsModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDProductAllergenInformationModuleType
        {
            get
            {
                return this.tSDProductAllergenInformationModuleTypeField;
            }
            set
            {
                this.tSDProductAllergenInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDNutritionalProductInformationModuleType
        {
            get
            {
                return this.tSDNutritionalProductInformationModuleTypeField;
            }
            set
            {
                this.tSDNutritionalProductInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDFoodAndBeveragePreparationInformationModuleType
        {
            get
            {
                return this.tSDFoodAndBeveragePreparationInformationModuleTypeField;
            }
            set
            {
                this.tSDFoodAndBeveragePreparationInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public object TSDFoodAndBeverageIngredientInformationModuleType
        {
            get
            {
                return this.tSDFoodAndBeverageIngredientInformationModuleTypeField;
            }
            set
            {
                this.tSDFoodAndBeverageIngredientInformationModuleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3")]
        public TSDBasicProductInformationModuleType TSDBasicProductInformationModuleType
        {
            get
            {
                return this.tSDBasicProductInformationModuleTypeField;
            }
            set
            {
                this.tSDBasicProductInformationModuleTypeField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:gs1:shared:shared_common:xsd:3")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3", IsNullable = false)]
    public partial class TSDProductQuantityInformationModuleType
    {

        private netContent netContentField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public netContent netContent
        {
            get
            {
                return this.netContentField;
            }
            set
            {
                this.netContentField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class netContent
    {

        private decimal codeListVersionField;

        private byte valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public byte Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:gs1:shared:shared_common:xsd:3")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3", IsNullable = false)]
    public partial class TSDProductOriginInformationModuleType
    {

        private countryOfOrigin countryOfOriginField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public countryOfOrigin countryOfOrigin
        {
            get
            {
                return this.countryOfOriginField;
            }
            set
            {
                this.countryOfOriginField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class countryOfOrigin
    {

        private countryOfOriginCountryCode countryCodeField;

        /// <remarks/>
        public countryOfOriginCountryCode countryCode
        {
            get
            {
                return this.countryCodeField;
            }
            set
            {
                this.countryCodeField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class countryOfOriginCountryCode
    {

        private decimal codeListVersionField;

        private byte valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public byte Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:gs1:shared:shared_common:xsd:3")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:gs1:shared:shared_common:xsd:3", IsNullable = false)]
    public partial class TSDBasicProductInformationModuleType
    {

        private productName productNameField;

        private consumerMarketingDescription consumerMarketingDescriptionField;

        private uint gpcCategoryCodeField;

        private brandNameInformation brandNameInformationField;

        private productInformationLink productInformationLinkField;

        private imageLink[] imageLinkField;

        private packagingSignatureLine packagingSignatureLineField;

        private avpListStringAVP[] avpListField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public productName productName
        {
            get
            {
                return this.productNameField;
            }
            set
            {
                this.productNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public consumerMarketingDescription consumerMarketingDescription
        {
            get
            {
                return this.consumerMarketingDescriptionField;
            }
            set
            {
                this.consumerMarketingDescriptionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public uint gpcCategoryCode
        {
            get
            {
                return this.gpcCategoryCodeField;
            }
            set
            {
                this.gpcCategoryCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public brandNameInformation brandNameInformation
        {
            get
            {
                return this.brandNameInformationField;
            }
            set
            {
                this.brandNameInformationField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public productInformationLink productInformationLink
        {
            get
            {
                return this.productInformationLinkField;
            }
            set
            {
                this.productInformationLinkField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("imageLink", Namespace = "")]
        public imageLink[] imageLink
        {
            get
            {
                return this.imageLinkField;
            }
            set
            {
                this.imageLinkField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Namespace = "")]
        public packagingSignatureLine packagingSignatureLine
        {
            get
            {
                return this.packagingSignatureLineField;
            }
            set
            {
                this.packagingSignatureLineField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayAttribute(Namespace = "")]
        [System.Xml.Serialization.XmlArrayItemAttribute("stringAVP", IsNullable = false)]
        public avpListStringAVP[] avpList
        {
            get
            {
                return this.avpListField;
            }
            set
            {
                this.avpListField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class productName
    {

        private string languageCodeField;

        private decimal codeListVersionField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string languageCode
        {
            get
            {
                return this.languageCodeField;
            }
            set
            {
                this.languageCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class consumerMarketingDescription
    {

        private string languageCodeField;

        private decimal codeListVersionField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string languageCode
        {
            get
            {
                return this.languageCodeField;
            }
            set
            {
                this.languageCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class brandNameInformation
    {

        private string brandNameField;

        private brandNameInformationLanguageSpecificBrandName languageSpecificBrandNameField;

        /// <remarks/>
        public string brandName
        {
            get
            {
                return this.brandNameField;
            }
            set
            {
                this.brandNameField = value;
            }
        }

        /// <remarks/>
        public brandNameInformationLanguageSpecificBrandName languageSpecificBrandName
        {
            get
            {
                return this.languageSpecificBrandNameField;
            }
            set
            {
                this.languageSpecificBrandNameField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class brandNameInformationLanguageSpecificBrandName
    {

        private string languageCodeField;

        private decimal codeListVersionField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string languageCode
        {
            get
            {
                return this.languageCodeField;
            }
            set
            {
                this.languageCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class productInformationLink
    {

        private string urlField;

        /// <remarks/>
        public string url
        {
            get
            {
                return this.urlField;
            }
            set
            {
                this.urlField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class imageLink
    {

        private string urlField;

        /// <remarks/>
        public string url
        {
            get
            {
                return this.urlField;
            }
            set
            {
                this.urlField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class packagingSignatureLine
    {

        private packagingSignatureLinePartyContactRoleCode partyContactRoleCodeField;

        private string partyContactNameField;

        private string partyContactAddressField;

        private uint gS1CompanyPrefixField;

        private packagingSignatureLineStringAVP[] avpListField;

        /// <remarks/>
        public packagingSignatureLinePartyContactRoleCode partyContactRoleCode
        {
            get
            {
                return this.partyContactRoleCodeField;
            }
            set
            {
                this.partyContactRoleCodeField = value;
            }
        }

        /// <remarks/>
        public string partyContactName
        {
            get
            {
                return this.partyContactNameField;
            }
            set
            {
                this.partyContactNameField = value;
            }
        }

        /// <remarks/>
        public string partyContactAddress
        {
            get
            {
                return this.partyContactAddressField;
            }
            set
            {
                this.partyContactAddressField = value;
            }
        }

        /// <remarks/>
        public uint gS1CompanyPrefix
        {
            get
            {
                return this.gS1CompanyPrefixField;
            }
            set
            {
                this.gS1CompanyPrefixField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("stringAVP", IsNullable = false)]
        public packagingSignatureLineStringAVP[] avpList
        {
            get
            {
                return this.avpListField;
            }
            set
            {
                this.avpListField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class packagingSignatureLinePartyContactRoleCode
    {

        private decimal codeListVersionField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public decimal codeListVersion
        {
            get
            {
                return this.codeListVersionField;
            }
            set
            {
                this.codeListVersionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class packagingSignatureLineStringAVP
    {

        private string nameField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class avpListStringAVP
    {

        private string nameField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class avpList
    {

        private avpListStringAVP[] stringAVPField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("stringAVP")]
        public avpListStringAVP[] stringAVP
        {
            get
            {
                return this.stringAVPField;
            }
            set
            {
                this.stringAVPField = value;
            }
        }
    }
}
